package org.jeecg.modules.demo.flowable.model;

import cn.hutool.core.map.MapUtil;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.util.Map;

/**
 * 流程参数
 *
 * @Author YuXD
 * @since 2024-03-28
 */
@NoArgsConstructor
@Data
public class ProcessParam implements Serializable {

    /**
     * 流程定义KEY
     */
    private String processDefinitionKey;

    /**
     * 流程实例ID
     */
    private String processInstanceId;

    /**
     * 任务ID
     */
    private String taskId;

    /**
     * 任务名称
     */
    private String taskName;

    /**
     * 业务KEY，一般为业务表单主键
     */
    private String businessKey;

    /**
     * 任务处理人
     */
    private String assignee;

    /**
     * 任务候选人
     * 多个候选人间用逗号分割
     */
    private String candidateUsers;

    /**
     * 审批结果
     */
    private String approveResult;

    /**
     * 备注
     */
    private String remark;

    /**
     * 流程变量参数
     */
    private Map<String, Object> variables;

    public ProcessParam(String processDefinitionKey, String businessKey) {
        this.processDefinitionKey = processDefinitionKey;
        this.businessKey = businessKey;
    }

    /**
     * 添加流程变量
     *
     * @param varaibleKey
     * @param varaibleValue
     */
    public void addVaraible(String varaibleKey, Object varaibleValue) {
        if (this.variables == null) {
            this.variables = MapUtil.newHashMap();
        }
        this.variables.put(varaibleKey, varaibleValue);
    }

}
